<template>
  <div class="edit_container">
    <div class="btn_box">
      <el-button @click.stop="goBack">返回</el-button>
    </div>
    <Acupuncture ref="acupuncture" form-type="view" @asyncInfor="asyncInfor" @addSpeciInfos="addSpeciInfos" :patient-info="patientInfo" :assess-info="assessInfo" :doctor-type="doctorType" />
    <div class="btn_footer">
      <el-button type="primary" :loading="submitLoading" @click.stop="submit">保存</el-button>
    </div>
  </div>
</template>

<script>
// import { getPatientInfo } from '@/api/common.js';
import Acupuncture from '../../assessSys/components/acupuncture.vue'
import { acupunctureDetail, acupunctureEvaluate } from '../../../api/treatment/acuptreatment.js'
import moment from 'moment'

export default {
  name: 'AcupunctureView',
  components: { Acupuncture },
  data() {
    return {
      assessId: 0,
      type: 0,
      source: 1,
      patientInfo: {},
      assessInfo: {},
      submitLoading: false,
      key: 0,
      time: null
    }
  },
  computed: {
    doctorType() {
      const sourceMap = {
        1: 'hospital',
        2: 'outpatient',
        3: 'therapists'
      }
      return sourceMap[this.source]
    }
  },
  mounted() {
    this.type = this.$route.query.type || 0
    this.source = this.$route.query.source
    this.assessId = this.$route.query.id
    this.getAssessInfo()
  },
  // created() {
  //   // this.getPatientInfo();
  // },
  methods: {
    // 获取患者信息
    // getPatientInfo() {
    //   getPatientInfo().then(res => {

    //   });
    // },
    // 同步表单信息
    asyncInfor(data) {
      this.assessInfo = data;
    },
    // 列表新增一条数据
    addSpeciInfos() {
      let data = {
        acupunctureDoctor: null,
        afterAcupunctureComplaint: null,
        beforeAcupunctureComplaint: null,
        checkDoctor: null,
        checkInfo: null,
        checkTime: null,
        treatmentDate: null,
        treatmentPart: null,
        isNew: 1
      };
      this.assessInfo.specificAcupunctureInfos.push(data);
      this.assessInfo = JSON.parse(JSON.stringify(this.assessInfo));
    },
    getAssessInfo() {
      // 执行获取治疗详情
      acupunctureDetail({
        type: this.type,
        evaluateSource: this.source,
        relationId: this.$route.query.adviceId
      }).then(res => {
        if (res.code === 0) {
          const content = res.content;
          this.patientInfo = {
            patientName: content.patientName,
            gender: content.gender,
            age: content.age,
            department: content.department,
            bedNum: content.bedNum,
            admissionNum: content.admissionNum
          };
          this.assessInfo = {
            ...this.assessInfo,
            ...content,
            specificAcupunctureInfos: content.specificAcupunctureInfos.map(item => ({
              treatmentDate: item.date,
              ...item,
            })),
            adlLevel: `${content.adlLevel}`,
            afterTreatmentEffect: content.afterTreatmentEffect,
            remarksOther: content.remarksOther,
            stopTreatmentReason: content.stopTreatmentReason,
            recordUser: content.recordUser,
            doctorStamp: content.doctorStamp,
            stampDate: moment(content.date).format('YYYY-MM-DD HH:mm:ss')
          };
        }
      });
    },
    goBack() {
      this.$store.dispatch('tagsView/delView', this.$route)
      this.$router.back()
    },
    submit() {
      if (this.assessId) {
        this.$refs.acupuncture.getFormData().then(data => {
          let deepData = JSON.parse(JSON.stringify(data));
          deepData.specificAcupunctureInfos.forEach(item => {
            item.checkTime && (item.checkTime = item.checkTime.replace(" ", "T"));
            item.treatmentDate && (item.treatmentDate = item.treatmentDate.replace(" ", "T"));
          });
          deepData.date && (deepData.stampDate = deepData.stampDate.replace(" ", "T"));
          this.submitLoading = true;
          const requestData = {
            relationId: this.$route.query.adviceId,
            evaluateSource: this.source,
            ...deepData
          };
          acupunctureEvaluate(requestData).then(res => {
            if (res.code === 0) {
              this.$message.success('保存成功');
              this.$store.dispatch('tagsView/delView', this.$route);
              this.$router.back();
            } else {
              this.$message.error(res.msg || '保存失败，请稍后重试');
            }
          }).catch(error => {
            this.$message.error('保存数据时发生网络错误，请稍后重试');
          }).finally(() => {
            this.submitLoading = false;
          });
        });
      } else {
        this.$refs.acupuncture.saveLocalFormData(this.source, this.patientId).then(() => {
          this.$message.success('本地保存成功');
          this.$store.dispatch('tagsView/delView', this.$route);
          this.$router.back();
        }).catch(error => {
          this.$message.error('本地保存失败，请稍后重试');
        });
      }
    }
  }
}
</script>

<style lang="scss" scoped>
@import url("./style.scss");
.btn_footer {
  display: flex;
  justify-content: center;
  align-items: center;
}
</style>
